MPI Datatype Marshalling: A Case Study in Datatype Equivalence
نویسندگان
چکیده
MPI datatypes are a convenient abstraction for manipulating complex data structures and are useful in a number of contexts. In some cases, these descriptions need to be preserved on disk or communicated between processes, such as when defining RMA windows. We propose an extension to MPI that enables marshalling and unmarshalling MPI datatypes in the spirit of MPI_Pack/MPI_Unpack. Issues in MPI datatype equivalence are discussed in detail and an implementation of the new interface outside of MPI is presented. The new marshalling interface provides a mechanism for serializing all aspects of an MPI datatype: the typemap, upper/lower bounds, name, contents/envelope information, and attributes.
منابع مشابه
MPI Derived Datatypes: Performance Expectations and Status Quo
We examine natural expectations on communication performance using MPI derived datatypes in comparison to the baseline, “raw” performance of communicating simple, noncontiguous data layouts. We show that common MPI libraries sometimes violate these datatype performance expectations, and discuss reasons why this happens, but also show cases where MPI libraries perform well. Our findings are in m...
متن کاملAutomatic Object Serialization in the mpiJava Interface to MPI
The paper discusses use of the Java object serialization model for marshalling communication data in Java bindings of the Message Passing Interface standard, MPI. This approach is compared with a Java transcription of the derived datatype mechanism used for bu er description in C and Fortran bindings of MPI. We describe an implementation of the mpiJava interface to MPI incorporating automatic o...
متن کاملExploiting Shared Memory to Improve Parallel I/O Performance
We explore several methods utilizing system-wide shared memory to improve the performance of MPI-IO, particularly for noncontiguous file access. We introduce an abstraction called the datatype iterator that permits efficient, dynamic generation of (offset, length) pairs for a given MPI derived datatype. Combining datatype iterators with overlapped I/O and computation, we demonstrate how a share...
متن کاملProcessing MPI Datatypes Outside MPI
The MPI datatype functionality provides a powerful tool for describing structured memory and file regions in parallel applications, enabling noncontiguous data to be operated on by MPI communication and I/O routines. However, no facilities are provided by the MPI standard to allow users to efficiently manipulate MPI datatypes in their own codes. We present MPITypes, an open source, portable lib...
متن کاملC++2MPI: A Software Tool for Automatically Generating MPI Datatypes from C++ Classes
The Message Passing Interface 1.1 (MPI 1.1) standard defines a library of message-passing functions for parallel and distributed computing. We have developed a new software tool called C++2MPI which can automatically generate MPI derived datatypes for a specified C++ class. C++2MPI can generate data types for derived classes, for partially and fully-specialized templated classes, and for classe...
متن کامل